Modern consumers are inundated with choices. Numerous varieties of products are offered to consumers, with consumers having unprecedented opportunities to select products that meet their needs. The opportunity for selection also presents the need to select, that is, to spend time and effort engaging in the selection process. The development of widely used and inexpensive processing systems has led vendors to develop techniques for directing customers to products expected to satisfy them. One area in which such systems are particularly useful is that of entertainment products, such as movies. Numerous customers may view the same movie, and in addition, each customer is likely to view numerous different movies. Customers have proven willing to indicate their level of satisfaction with particular movies, so that a huge volume of data is available as to which movies appeal to which customers. Proper examination and processing of this data can be used to recommend movies to particular customers, and such examination and processing can be conducted for any sort of product or service for which data can be collected. The remainder of this discussion will be presented in terms of ratings of movies, although it will be recognized that the teachings of the present invention can be applied to any situation in which it is desired to estimate the desirability of an item for a user.
A movie recommendation is essentially an estimate of the rating a user would give to an item that he or she has not yet viewed, based on computations based on previous ratings. One widely used technique for recommendations is called collaborative filtering, in which a recommendation for a user relating to a particular item is based on a user's previous ratings of different movies, and ratings of other users for the movie under consideration, as well as different movies. One popular approach to collaborative filtering is neighborhood based collaborative filtering. Unknown ratings are estimated based on recorded ratings of like minded users, that is, on ratings that have been given to a particular movie by users that have also given similar ratings to other movies as those given by the user under consideration. A rating for an item i is suitably expressed as a value rui, where for a user u, a set N(u;i) is created of users that tend to rate similarly to u, and who have rated item i. The estimated value of rui is then taken as a weighted average of the neighbors' ratings, with the degree of similarity of a neighbor to the user u being used to give an appropriate weight to that user's rating.
Similarly, an item oriented approach can be taken. A rating is estimated using known ratings made by the same user on similar items. A set of neighboring items N(i;u) is created that other users tend to rate similarly to their rating of i. All items in N(i;u) must have been rated by the user u. The estimated value of rui is taken as a weighted average of the ratings of neighboring items.
Neighborhood based methods are intuitive and relatively simple to implement, without a need to present many parameters or to conduct an extensive training stage. They also allow for presenting a user with similar items that he or she has rated, and giving the user an opportunity to change previous ratings in accordance with his or her present tastes, with the understanding that this act will affect subsequent ratings.